home *** CD-ROM | disk | FTP | other *** search
/ Fritz: All Fritz / All Fritz.zip / All Fritz / FILES / PROGASIC / BASFILES.LZH / BASTOREL.BAS < prev    next >
BASIC Source File  |  1988-09-10  |  1KB  |  37 lines

  1. '$INCLUDE:'QBTOOLS.INC'
  2. '' DECLARE FUNCTION BaseToReal! (Numbase%, Number$)
  3.  
  4. FUNCTION BaseToReal! (Numbase%, Number$) STATIC
  5.  
  6.     Base10! = 0                                       'Clear output.
  7.     Number$ = RTRIM$(Number$)                         'Remove leading spaces
  8.     Number$ = LTRIM$(Number$)                         'Remove trailing spaves
  9.     Number$ = UCASE$(Number$)                         'Convert to uppercase
  10.     Length% = LEN(Number$)                            'Number of characters
  11.                                                                       'in input string
  12.  
  13.     IF Numbase% < 0 OR Numbase% > 16 THEN             'Check for valid base
  14.         BaseToReal = -1
  15.         EXIT FUNCTION
  16.     END IF
  17.  
  18.     FOR i% = Length% TO 1 STEP -1
  19.         Digit% = ASC(MID$(Number$, i%, 1)) - 48        'Numeric
  20.         IF Digit% > 9 THEN
  21.             Digit% = ASC(MID$(Number$, i%, 1)) - 55     'Alpha
  22.         END IF
  23.           
  24.             IF Digit% < 0 OR Digit% > Numbase% - 1 THEN 'Validate number
  25.                 BaseToReal! = -1
  26.                 EXIT FUNCTION
  27.             END IF
  28.  
  29.         Base10! = Base10! + Digit% * Numbase% ^ (Length% - i%) 'Conversion
  30.   
  31.     NEXT i%
  32.   
  33.     BaseToReal! = Base10!                          'Return to Function
  34.  
  35. END FUNCTION
  36.  
  37.